package com.example.heraclitoapp;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import com.example.heraclitoapp.R;

import android.app.Activity;
import android.content.res.AssetManager;
import android.os.Bundle;
import android.text.method.ArrowKeyMovementMethod;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

public class ExemplosActivity extends Activity {
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.exemplos);
		
		final Spinner lista_pastas = (Spinner) findViewById(R.id.pastas);
		final Spinner lista_exemplos = (Spinner) findViewById(R.id.exemplos);
		final Button selecionar_exemplo = (Button) findViewById(R.id.btn_selecionar);
		final TextView exemplo_display = (TextView) findViewById(R.id.exemplo_display);
		
		try {
			final String[] pastas = getAssets().list("Exemplos");
			
			/**
			for (int i = 0; i < pastas.length; i++) {
				if (pastas[i].contains("1-Basico")) {
					pastas[i] = getString(R.string.nivel_basico);
				} else if (pastas[i].contains("2-Intermediario")) {
					pastas[i] = getString(R.string.nivel_intermediario);
				} 	if (pastas[i].contains("3-Avancado")) {
					pastas[i] = getString(R.string.nivel_avancado);
				}
			}**/
			pastas[0] = getString(R.string.nivel_basico);
			pastas[1] = getString(R.string.nivel_intermediario);
			pastas[2] = getString(R.string.nivel_avancado);
			
			Log.d("PASTAS",pastas.toString());
			
			ArrayAdapter<String> pastasAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, pastas);
			lista_pastas.setAdapter(pastasAdapter);
			
			lista_pastas.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

				public void onItemSelected(AdapterView<?> parent,
						View view, int pos, long id) {
					// An spinnerItem was selected. You can retrieve the
					// selected item using
					// parent.getItemAtPosition(pos)
					
					String pastaSelecionada = null;
					
					if (lista_pastas.getSelectedItem().toString().equals(getString(R.string.nivel_basico))) {
						pastaSelecionada = "1-Basico";
					} else if (lista_pastas.getSelectedItem().toString().equals(getString(R.string.nivel_intermediario))) {
						pastaSelecionada = "2-Intermediario";
					} else if (lista_pastas.getSelectedItem().toString().equals(getString(R.string.nivel_avancado))) {
						pastaSelecionada = "3-Avancado";
					}
					
					
					String[] exemplos = null;
					try {
						exemplos = getAssets().list("Exemplos" + System.getProperty("file.separator") + pastaSelecionada);
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					
					ArrayAdapter<String> listaExemplos = new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_list_item_1, exemplos);
					lista_exemplos.setAdapter(listaExemplos);
				}

				public void onNothingSelected(AdapterView<?> parent) {
					// Do nothing, just another required interface callback
				}
			});	
			
			selecionar_exemplo.setOnClickListener(new View.OnClickListener() {
				
				public void onClick(View arg0) {
					if ( lista_exemplos.getSelectedItem() != null ) {
						
						String Texto = "";
						InputStream exemploSelecionado = null;
						 
						//File f = new File(diretorio + System.getProperty("file.separator") + Pasta + System.getProperty("file.separator") + Arquivo); //Abre o arquivp
				        try {
				        	
				        	String pastaSelecionada2 = null;
							
							if (lista_pastas.getSelectedItem().toString().equals(getString(R.string.nivel_basico))) {
								pastaSelecionada2 = "1-Basico";
							} else if (lista_pastas.getSelectedItem().toString().equals(getString(R.string.nivel_intermediario))) {
								pastaSelecionada2 = "2-Intermediario";
							} else if (lista_pastas.getSelectedItem().toString().equals(getString(R.string.nivel_avancado))) {
								pastaSelecionada2 = "3-Avancado";
							}
				        	
				            exemploSelecionado = getAssets()
									.open("Exemplos" + System.getProperty("file.separator")
											+ pastaSelecionada2 + System.getProperty("file.separator") + lista_exemplos.getSelectedItem().toString());
				        	InputStreamReader isr = new InputStreamReader(exemploSelecionado);
				            
				            //Carrega o texto
				            BufferedReader in = new BufferedReader(isr);
				            String linha;
				            //Le o arquivo linha a linha e armazena na variavel Texto
				            while((linha = in.readLine())!=null)  {
				                Texto = Texto + linha + "\r\n";
				            }
				        } catch (Exception e) {
				            e.printStackTrace();
				        }
				        
				        exemplo_display.setText(Texto);
				        exemplo_display.setMovementMethod(ArrowKeyMovementMethod.getInstance());
					}
			};
			
		});
			
		} catch (IOException exception) { 
			exception.printStackTrace();
		}
		
		
  }

}
